Data transmission apparatus of video-on-demand or near video-on-demand system

ABSTRACT

A data transmission apparatus suitable for use in a VOD system which can send program data in response to requests made at any time. In the data transmission apparatus of the present invention, a series of data is read from a mass storage at a high speed referring to a data recording table in which are recorded the head address and magnitude of the series of data which are to be simultaneously read and the magnitudes of the individual data. For the read data, the magnitudes of individual data of the table are referred to, separated to individual data, and recorded in the buffer memory (33 -1  to 33 -n ) for every output channel. The data is appropriately processed and transmitted for every channel by the buffer memory controllers (32 -1  to 32 -n ) provided for every output channel and output controllers (35 -1  to 35 -n ) and formatter. By this, it is possible to provide a data transmission apparatus in which desired data can be transmitted from the recording apparatus in which individual data are recorded with a variable data rate in parallel at a high speed, a variety of programs can be recorded with a good efficiency, and no deterioration occurs in the picture.

TECHNICAL FIELD

The present invention relates to a data transmission apparatus which issuitably used in a video-on-demand or other apparatus which can sendvideo data in response to demand at any time.

BACKGROUND ART

Realization of a practical video-on-demand (VOD) system which caninstantly provide program data in response to a demand of a receiver hasbeen desired. A VOD system able to individually respond to demands madeat all times, however, requires an extremely large sized datatransmission apparatus which performs complex processing.

Accordingly, a near-video-on-demand (NVOD) system which can simplify theconfiguration of the data transmission apparatus while realizing afunction similar to that of a VOD system has been proposed. An NVODsystem is a system that transmits program data to a plurality ofchannels at predetermined time intervals. It selects the channels forthe programs starting from the next time zone or time period in responseto requests made in a certain time zone and then provides thoseprograms.

Even in an NVOD system, however, it is necessary to simultaneouslyreproduce a plurality of series of program data to be transmitted to aplurality of channels, so there is a desire that the reproduction of theplurality of series of program data be carried out by a simplerapparatus and by a more efficient method.

As a fundamental method of generating a plurality of series of programdata, there is the method of providing a separate reproducing apparatusfor each of the channels and transmitting the data to the plurality ofchannels by these. Further, in recent years, hard disc devices,magneto-optic disc devices, and other randomly accessible recordingapparatuses which have large capacities and can perform high speedaccess have been realized. An NVOD system which records video data etc.in these recording apparatuses and transmits the data to the pluralityof channels in a time division manner is disclosed in Japanese PatentApplication No. 5-328349 previously filed by the present applicant.

Further, the present applicant has proposed in Japanese PatentApplication No. 6-137018 an NVOD system with a method of recording datawherein continuous regions are read so as to read the data and transmitthe data to a plurality of channels at a speed as high as possible.

In such a data transmission apparatus, however, to perform high speedaccess and to facilitate the control as much as possible, the data hasbeen encoded with a predetermined fixed data rate. As a result, theencoding at the fixed compression rate is carried out even with respectto data that can be encoded with a higher compression rate than thefixed data rate, so there is a problem that the programs cannot beefficiently stored. Further, with respect to data for which encoding ata fixed compression rate is difficult, conversely the encoding isforcibly carried out at that fixed compression rate, so there is aproblem that the quality of the picture and sound when reconstructingthe data is deteriorated.

DISCLOSURE OF THE INVENTION

An object of the present invention is to provide a data transmissionapparatus using a recording apparatus recording video data, audio data,and other data encoded at a variable data rate suited to the respectivedata, reading the data at a high speed from that recording apparatus,and able to almost simultaneously transmit data to a plurality ofchannels in response to demand. Further, another object is to provide adata transmission apparatus which can store a variety of data with ahigh efficiency and does not cause a deterioration of quality whenreconstructing the data.

When accessing a recording medium in which data is recorded at avariable data rate, the access must be carried out while checking themagnitude of the data and the head position of the data, so the accessper second cannot be carried out at a high speed. Accordingly, if directdecision of the divisions of the data etc. without having to performcomputations and other processing each time were made possible, accessof data at a speed similar to that of data of a fixed length wouldbecome possible even for data of a variable length.

Accordingly, the data transmission apparatus of the present inventioncomprises a data recording means for recording on a recording medium aplurality of divided time series data, formed by dividing the timeseries data for every predetermined time zone and applying variablelength coding, in sequential order in accordance with the time zones; atable storing means for storing at least a table including data lengthinformation indicating the data length of each of the divided timeseries data and recording address information indicating a firstrecording address of the divided time series data in the data recordingmeans; and an output means for sequentially outputting the divided timeseries data in predetermined fixed time units based on the data lengthinformation and the recording address information stored in the tablestoring means.

Specifically, the time series data is video data.

Alternatively, specifically, the data recording means and the tablestoring means store the data and the table in different recordingregions of the same recording medium.

Alternatively, the data transmission apparatus of the present inventioncomprises a data recording means for recording on a recording medium aplurality of divided time series data, formed by dividing a plurality oftime series data for every predetermined time zone and applying variablelength coding, in order in accordance with the time zones of theplurality of divided time series data of each time series data,respectively; a table storing means for storing at least a tableincluding data length information indicating the data length of each ofthe divided time series data and recording address informationindicating the first recording address of at least one divided timeseries data in the data recording means; a plurality of output channels;and an output means for sequentially outputting the divided time seriesdata from one of the plurality of output channels in predetermined fixedtime units based on the data length information and the recordingaddress information stored in the table storing means.

Preferably, the plurality of time series data have a mutual relationshipin time series, the output means sequentially outputs the plurality oftime series data from each of the output channels in a predeterminedorder by sequentially outputting a plurality of divided time series dataconstituting the plurality of time series data from each of the outputchannels in the predetermined order.

Alternatively, preferably, the plurality of time series data have amutual relationship in time series and, each time series datacorresponds to one of the output channels, and the output meanssequentially outputs a plurality of divided time series dataconstituting each time series data from each corresponding outputchannel in a predetermined order.

Alternatively, preferably, the data recording means records each dividedtime series data of the same time zone among the plurality of timeseries data in the recording medium so that they are physicallycontinuous.

Alternatively, preferably, the data recording means continuously recordseach of the divided time series data of the same time zone among theplurality of time series data in recording regions from which the datacan be read in a lump on a randomly accessible recording medium.

Specifically, the time series data is video data.

Alternatively, specifically, the output means has a data reading meansfor reading from the data recording means each of the divided timeseries data by identifying the same for every time zone based on thedata length information and the recording address information stored inthe table storing means; a plurality of buffer memories which areprovided corresponding to the time series data for storing each of thedivided time series data read by the data reading means, respectively;and a control means for controlling the output of the data from theplurality of buffer memories to the plurality of output channels.

Specifically, the data recording means and the table storing means storethe data and the table in different recording regions of the samerecording medium.

BRIEF DESCRIPTION OF THE DRAWINGS

The above object and features of the present invention will become moreapparent from the following description with reference to theaccompanying drawings, wherein:

FIG. 1 is a view of the configuration of a data transmission apparatusaccording to the present invention;

FIG. 2 is a view of the configuration of a transmitter of the datatransmission apparatus shown in FIG. 1;

FIG. 3 is a view of the configuration of a buffer memory and an outputinterface of the transmitter shown in FIG. 2;

FIG. 4 is a view explaining program data recorded in the datatransmission apparatus shown in FIG. 1;

FIG. 5A is a view of the change along with time of the variable lengthcoding rate of a program A;

FIG. 5B is a view of the change along with time of the variable lengthcoding rate of a program B;

FIG. 5C is a view of the change along with time of the variable lengthcoding rate of a program C;

FIG. 6 is a view of a state of recording of the program data to a massstorage;

FIG. 7 is a view of the data recording table;

FIG. 8 is a flow chart showing the processing of a CPU of thetransmission unit at the time of recording data;

FIG. 9 is a view of the amount of codes for each program;

FIG. 10 is a view of the number of sectors for each program;

FIG. 11 is a flow chart showing the processing of the CPU of thetransmission unit at the time of transmission of data in a firstembodiment of the data transmission apparatus;

FIG. 12 is a view of the data output from the first embodiment of thedata transmission apparatus and a view of the output of the variabledata rate from each output channel;

FIG. 13A is a view of the state that different programs are transmitted;

FIG. 13B is a view of the state that the same program is transmitteddeviated by 10 minutes each;

FIG. 14 is a flow chart showing the processing of the CPU of thetransmission unit at the time of transmission of data in a secondembodiment of the data transmission apparatus; and

FIG. 15 is a view of the data output from the second embodiment of thedata transmission apparatus and a view of the output of the fixed datarate from each output channel.

BEST MODE FOR CARRYING OUT THE INVENTION

First embodiment

A first embodiment of the data transmission apparatus of the presentinvention will be explained by referring to FIG. 1 to FIG. 13.

The data transmission apparatus of the first embodiment is a datatransmission apparatus which is used for the transmission of data in anNVOD system and transmits a program so that the program can be receivedby a receiver which requests the reception of the program fromsubstantially the time of the request.

FIG. 1 is a view of the configuration of the first embodiment of thedata transmission apparatus of the present invention.

The data transmission apparatus 1 has a switcher 40, a transmission unit10, a formatter unit 20, a data exchange 60, and a transmissioncontroller 50. Note that the data transmission apparatus 1 receives asinput data subjected to variable length coding by a variable lengthcoding unit 70.

First, the operations of the different portions constituting the datatransmission apparatus 1 will be briefly explained referring to FIG. 1.

The switcher 40 inputs the program data for transmission, output from anot illustrated program library and subjected to variable length codingby the variable length coding unit 70, to one of m number oftransmitters 10₋₁ to 10_(-m). The program library has recorded in it aplurality of program data which can be provided.

The transmission unit 10 is constituted by m number of transmitters 10₋₁to 10_(-m), each of the transmitters 10₋₁ to 10_(-m) having n number ofoutput channels. The configuration of the transmitters 10₋₁ to 10_(-m)will be explained later.

The formatter unit 20 is constituted by m number of formatters 20₋₁ to20_(-m) corresponding to the transmitters 10₋₁ to 10_(-m). Eachformatter 20_(-i) (i=1 to m) adds to the output data from the channelsof the transmission unit 10 a header such as the destination informationto the receiver which had requested the data, constructs an ATM cell fortransferring the data by the ATM (a synchronous transfer mode),multiplexes a large number of ATM cells, and then outputs the same tothe data exchange 60.

The data exchange 60 is connected to a variety of transmission lines andtransmits the data from the data transmission apparatus 1.

The transmission controller 50 controls the transmission unit 10, theformatter unit 20, and the data exchange 60 to make them perform thetransfer of the program data to the transmission unit 10 via thevariable length coding unit 70 and the switcher 40, the transfer of theprogram data from the transmission unit 10 to the formatter unit 20, thetransmission of the program data to the origin of the request, etc. atdesired timings.

Next, an explanation will be made of the configuration of thetransmission unit 10 by referring to FIG. 2 and FIG. 3.

The transmission unit 10 is constituted by n number of transmitters 10₋₁to 10_(-n).

FIG. 2 is a view of the configuration of a transmission unit 10_(-i) (i=1 to n).

FIG. 3 is a view explaining the configuration of a buffer memory unit 16and an output interface 18 shown in FIG. 2.

The transmission unit 10 has a ROM 11, a CPU 12, a RAM 13, an externalcontrol interface 14, an input interface 15, a buffer memory unit 16, amass storage 17, an output interface 18, and a bus 19 connecting them.

The ROM 11 stores the programs to be executed by the CPU 12.

The RAM 13 is a main memory for executing a variety of operations in theCPU 12. Further, the RAM 13 stores a data recording table in which arerecorded addresses and capacities of the data recorded in the massstorage 17 at the start of a series of processings.

The external control interface 14 is an interface with the transmissioncontroller 50. The CPU 12 executes a variety of processings based oncommands from this transmission controller 50.

The input interface 15 is an interface receiving program data from theswitcher 40. The input program data is once stored in the RAM 13 andthen recorded in the mass storage 17 via the buffer memory unit 16. Notethat, an input I/F 15 can also directly perform the transfer of datawith the buffer memory unit 16. Accordingly, it is also possible todirectly record the input program data in the mass storage 17 via thebuffer memory unit 16.

The mass storage 17 is a data storage device which is constituted by ahard disc device, a magneto-optic disc (MO) device, etc., has a largecapacity, and can perform random access. The mass storage 17 iscontrolled by a mass storage interface unit 31 in the buffer memory unit16.

The buffer memory unit 16 temporarily stores the transfer data at thetime of transfer of the program data with the mass storage 17, the inputinterface 15, the output interface 18, and the bus 19. The buffer memoryunit 16 is constituted by the mass storage interface unit 31, n numberof buffer memory controllers 32₋₁ to 32_(-n), and the buffer memories33₋₁ to 33_(-n) corresponding to the buffer memory controllers 32₋₁ to32_(-n).

The mass storage interface unit 31 is a control unit for controlling themass storage 17.

The buffer memory controllers 32₋₁ to 32_(-n) separate the program dataread out together every predetermined unit from the mass storage 17 tothe data for each channel based on the control signal from the CPU 12 inassociation with the mass storage interface unit 31, stores the same inthe buffer memories 33₋₁ to 33_(-n), and appropriately outputs the sameto the output interface 18.

The buffer memories 33₋₁ to 33_(-n) are buffers provided correspondingto the n number of output channels and temporarily store the data foreach channel read out from the mass storage 17 and separated.

The output interface 18 is an interface which transfers the program dataoutput from the mass storage 17 via the buffer memory 16 to theformatter unit 20 and is constituted by the output interfaces 35₋₁ to35_(-n) corresponding to the n number of output channels and an outputcontrol unit 34 for controlling the same.

The bus 19 is a data bus for performing the transfer of the data of thedifferent unit in the transmission unit 10. For example, the datatransfer between the CPU 12 and the RAM 13, the transfer of the datainput to the input I/F 15 to the RAM 13, the transfer of the data fromRAM 13 to the buffer memory unit 16, etc. are carried out via this bus19.

The CPU 12 makes the input interface 15, the buffer memory unit 16, andthe output interface 18 execute a variety of commands based on a commandfrom the transmission controller 50 in accordance with a program storedin the ROM 11. The operation of the CPU 12 will be explained in detaillater.

Next, an explanation will be made of the recording format of the programdata in the data transmission apparatus 1 of the first embodiment.

The data transmission apparatus 1 of the first embodiment records theprogram data of the program A to program L shown in FIG. 4 by a dataformat suited for NVOD transmission.

In FIG. 4, each of the 12 programs A to L is comprised of video datalasting 10 minutes. They are respectively comprised by 0.5 secondprogram blocks A0 to A1199, B0 to B1199 , . . . , and L0 to L1199.

The change of the coding rate of the program A, program B, and program Lis shown in FIG. 5. Note that, in FIG. 5, the coding rate is representedby the amount of coded data when encoding one second of video data(video data of amount of 30 frames in an NTSC signal). In FIG. 5, eachprogram has an average coding rate of 3 Mbps!, a maximum coding rate of5 Mbps!, and a minimum coding rate of 1 Mbps!. However, for example inthe program A, it exceeds 3 Mbps! for the period from 0 to 150 secondsand for the period from 300 to 450 seconds and is less than 3 Mbps! forthe period from 150 to 300 seconds and for the period from 450 to 600seconds. In such a program, where the video data is encoded with a fixedcoding rate of 3 Mbps!, the quality of the picture will be deterioratedduring the period from 0 to 150 seconds and the period from 300 to 450seconds and the coding efficiency will be poor and the recording mediumwill be wastefully used for the period from 150 to 300 seconds and forthe period from 450 to 600 seconds.

Accordingly, in the data transmission apparatus 1 of the firstembodiment, to prevent the deterioration of the quality of the pictureand to utilize the recording medium with a high efficiency, datacomprised of the program data subjected to variable length coding isrecorded. The state of recording is shown in FIG. 6.

FIG. 6 is a view of the state of recording of the program data to themass storage 17 in the data transmission apparatus 1 of the firstembodiment as mentioned before. As shown in FIG. 6, in the datatransmission apparatus 1 of the first embodiment, the input program datais recorded so that the data blocks to be simultaneously reproduced ofthe 12 series of program data subjected to the variable length codingare continuous on the recording medium to result in preferable for NVODtransmission. Concretely, the series of program data, each comprised by1200 program blocks, are recorded from the logical sector address 1000in an order of A0 to L0, A1 to L1, . . . , A1199 to L1199.

Further, in the data transmission apparatus 1 of the first embodiment,to reproduce the recording data as shown in FIG. 6, the data recordingtable shown in FIG. 7 is prepared. The data is reproduced by referringto this table. In the data recording table of FIG. 7, a start logicsector address, a total number of sectors, the numbers of sectors of theprograms A to L, and the amounts of codes of the programs A to L arerecorded for every 1200 program blocks. This data recording table isstored in a predetermined region of the mass storage 17 before theaddress 1000. At the time of reproduction, first, the CPU 12 of thetransmitter 10₋₁ reads this table onto the RAM 13 and thereaftersequentially reads the data and instructs the transfer referring to thisdata recording table.

Next, an explanation will be made referring to FIG. 8 to FIG. 13 of theoperation of the data transmission apparatus 1 of the first embodimentfor recording the input program data by the recording formatter asmentioned before and reproducing the program data recorded in this way.

First, an explanation will be made of the method of recording the datainput to the data transmitting apparatus 1 in the mass storage 17 of thetransmitter 10_(-i) (i=1 to n).

FIG. 8 is a flow chart showing the processing of the CPU 12 of thetransmitter 10_(-i) when recording the data.

Note that, in FIG. 8, the array Ti is an array for recording the amountof coding data of the data for every 0.5 second of each program data andis comprised of 12×1200 elements. Further, the array T2 is an array forrecording the number of sectors of the data for every 0.5 second of eachprogram data and is comprised of 12×1200 elements. Further, the array T3is an array for recording the above data recording table and iscomprised of 12×1200 elements. Further, the array DT and the array DFare arrays for showing the data recording regions of the mass storage17, in which the array DT shows a data file for temporarily recordingthe program data and the array DF shows the data file for finallyrecording the program data. Further, the array DTA is a pointer fordesignating the start sector address of the above 12 programs in thedata file DT and is comprised of 12 elements corresponding to the 12series of program data.

First, when starting the processing for recording data (step S20), theCPU 12 of the transmitter 10_(-i) (i=1 to n) performs initializationprocessing (step S21). This initialization processing includes forexample processing for opening the file in the mass storage 17 forrecording the data or securing the array etc. on RAM 13. Next, thevariable k showing the data recording sector address of the data fileDT, the variable j showing the type of program, and the array DTA areinitialized (step S22). Specifically, the variables k and j are made 0and the array DTA(j) is made k, i.e., 0.

Further, the variable i, which is the pointer of 1200 data for every 0.5second of each program, is reset (step S23) and the input of the programdata is started.

First, the data for the first 0.5 second of the first program data isinput and the code amount x of that data is found (step S24). Note thatthe input data is stored in the RAM 13 at this point of time. Next, thefound code amount x is recorded at a predetermined element of the arrayT1, that is, an array element T1(0,0) for the first data of the firstprogram. Further, the number y of sectors of the mass storage 17necessary when recording that data is found and is recorded at apredetermined element of the array T2, that is, an array element T2(0,0)for the first data of the first program (step S25). Specifically, avalue obtained by rounding off the result of the computation(x×10⁶)÷(8×1024) to the decimal point is used as the number y ofsectors.

When the detection of the code amount and necessary number of sectorswith respect to the data for the first 0.5 second of the first programdata is ended, that data is temporarily recorded in the mass storage 17(step S26). Namely, the data of the amount of 0.5 second, that is, thedata of the amount of Y number of sectors, is recorded in the recordingregion of the (k+y-1) sectors from the sector address k of the data fileDT (actually existing in the mass storage 17). When recording the datain the mass storage 17, the pointer k is counted up by the amount of ynumber of sectors so that the pointer k indicates the sector address atwhich the data will be recorded next (step S27).

Next, it is examined whether or not the data of the currently inputprogram j is ended. Namely, it is judged whether or not the data forevery 0.5 second of the first program has been input 1199 number oftimes, in other words, whether or not all of the data of 10 minutes ofthe first program data has been input (step S28). If the data of thatprogram has not yet ended, the pointer i of the data of every 0.5 secondis counted up by 1 (step S29) and the processings from step S24 arerepeated again.

When the data of the currently input program j has ended at step S28, itis checked whether or not all of the 12 programs to be input have beeninput, that is, whether or not the variable j indicating the type of theprogram is 11 (step S30). If the input of the data of 12 programs hasnot ended, the variable j indicating the type of that program is countedup (step S31), and further the sector address k on the mass storage 17at which the data will be recorded next is set in the array DTA showingthe head address of each program of the temporary data file DT (stepS32), and the input of the data of a new program j is repeated. Namely,at step S23 again, the variable i indicating the identification numberof the data of each program is reset, the processings from step S24 tostep S28 are repeated, and all data of the 10 minutes of that programare input.

When it is judged that the scheduled 12 series of program data are allinput at step S30, the processing routine shifts to the processing forthe rearrangement of the data from step S33. Note that, in this state,all data are recorded in the array T1 and the array T2. The content ofthe array T1 where the 12 series of program data shown in FIG. 4 andFIG. 5 are input is shown in FIG. 9. The content of the array T2 isshown in FIG. 10. FIG. 9 is a table showing the amount of coding data ofeach data for every 0.5 second of each program data, while FIG. 10 is atable showing the number of sectors necessary when recording the data inthe mass storage 17.

Next, an explanation will be made of the processing for therearrangement of the data. Note that, the table stored in the array T3at the end of the present rearrangement processing is the data recordingtable shown in FIG. 7 used in the processing of reading the recordedprogram data.

In the processing for rearrangement, the processing is proceeded withusing as a reference the number of the data blocks for every 0.5 second.First, the variable i indicating the identification number of the datablock is reset, then the head address of the region recording theprogram data in the mass storage 17 is set to a variable e for theinitialization (step S33). For the above head address, it is possible toset any address so as to record the data in any recording region, but inthe first embodiment, a recording region for recording the data such asthe data recording table etc. is secured and 1000 is set as the headaddress at which that program data is recorded.

Namely, the data of the data recording table etc. is recorded in therecording region before the sector address 1000 and the program data isrecorded in the recording regions of the sector address 1000 andsubsequent addresses.

Next, as the initialization performed at the transfer of the first dataof each data block, the head sector address of the recording region inwhich the data of the data block i is recorded is set in the arrayelement T3(0,i), and the array element T3(1,1) in which the total numberof sectors of all programs of that data block is recorded and thevariable j indicating the program are reset (step S34). For the firstdata block, the above initially set sector address 1000 is set in thearray element T3(0,0).

Then, the data of each program j of that data block is sequentiallytransferred. First, the amount of the coding data and required number ofsectors of the first data block of the first program are read from thearray T1 and the array T2 and set to the variables x and y, respectively(step S35). Specifically, first, the amount of coding data for the first0.5 second of the program A is read from the array T1 in which a valueas shown in FIG. 9 is recorded and the value 2500 thereof is set to thevariable x. Further, the number of sectors of the recording regionnecessary for the data of the first 0.5 second of the program A is readfrom the array T2 in which a value as shown in FIG. 10 is recorded and avalue 306 thereof is set to the variable y.

Next, the read amount of coding data and number of sectors are set inthe predetermined array elements T3(j+14,i) and T3(j+2,i) of the arrayT3, respectively, and further the above number y of sectors is added tothe value of the array element T3(1,i) in which the total number ofsectors of all programs of that data block i is recorded (step S36). Forthe first data of the first program, 2,500,000 is set in the arrayelement T3(14,0) and 306 is set in the array element T3(2,0). First, atthe point of time when the first program data is recorded, the value 306of the variable y is set as it is also in the array element T3(1,i) inwhich the total number of sectors of all programs is recorded.

Next, the head address DTA(j) of the data of the data block i of theprogram j in the data file DT is read and set in the pointer k (stepS37). Then, based on that pointer k, the data is read from the data fileDT and transferred to the predetermined region of the data file DF, thehead address of which is indicated by the variable l (step S38). Whenthe transfer of that data is ended, the number y of sectors of thecurrently transferred data is added to the read head address DTA(j) ofthe data file DT and the pointer l of the data file DF and respectivevalues are updated (step S39).

At the point of time when the first data of the first program istransferred, the pointer l is updated to 1306 (1000+306).

The processings from step S35 to step S39 are sequentially carried outfor the respective programs.

Namely, it is checked whether or not the transfer of the data of thedata block i of all programs is ended (step S40). Where it has notended, the variable j indicating that program is counted up (step S41)and the processings from step S35 are repeated.

At the second round, at step S35, the amount of coding data and requirednumber of sectors of the first data block of the second program are readout from the array T and array T2 and set to the reading variables x andy. As shown in FIG. 9 and FIG. 10, 2500 is set as the variable x and 306is set as the variable y. Then, at step S36, these values arerespectively set in the predetermined array elements T3(15,0) andT3(3,0) of the array T3. Further, the above number y of sectors is addedto the value of the array element T3(1,0) in which the total number ofsectors of all programs of that data block i is recorded. In this arrayelement T3(1,0), the number 306 of sectors of the first program has beenalready set, so the value of the array element T3(1,i) becomes 612 bythis processing.

Then, the head address DTA(j) of the data of the first data block of thesecond program of the data file DT is read and set in the pointer l(step S37). Based on the pointer k and the pointer l of the data fileDF, the data of an amount of y number of sectors starting from thesector address k of the data file DT is transferred to the region of theamount of y number of sectors starting from the sector address l of thedata file DF.

Then, the number y of sectors of the currently transferred data is addedto the head address DTA(I) of the data file DT and the pointer l of thedata file DF to update those values (step S39).

Below, the processing from step S35 to step S39 is repeated in a similarfashion for exactly the number of series of the program data. Then, whenthe transfer of the final program data is ended (step S40), the transferof the data of the next 0.5 second is started. Namely, it is checkedwhether or not the data block i for which the transfer of the currentdata is ended is the final data block, that is, the 1200-th data block(step S42). Where it is not the final data block, the variable iindicating the data block is increased by 1 (step S42) and theprocessing for the transfer of the program data is commenced withrespect to the next data block. Namely, the processing from step S34 tostep S41 is repeated.

At step S34 again, the head sector address of the recording region inwhich the data of that data block i is recorded is set in the arrayelement T3(0,i), and the array element T3(1,i) in which the total numberof sectors of all programs of that data block is recorded and thevariable j indicating a program are reset (step S34). The total numberof sectors of the data of the first 0.5 second of the 12 programs is2951 sectors as seen from the table of FIG. 7. Accordingly, at the pointof time when the transfer of this data is ended, the pointer l of thedata file DF has become 3951, that is, is advanced from the initialvalue 1000 of that address by 2951 sectors. This value is set in thearray element T3(0,1) as the head address of the recording region inwhich the data of the second data block (i=1) is recorded.

Thereafter, the processing from step S35 to step S41 is repeated in asimilar fashion to transfer the respective program data. Further, theprocessing from step S34 to step S43 is repeated to transfer the data ofthe respective data blocks.

Then, at step S42, when the transfer of the data of the programs of thefinal data block, that is, the data block having a data blockidentification number i of 1199, is ended, the array T3 is written inthe mass storage 17 as the data recording table (step S44), theprocessing for ending the series of processings for recording the datais carried out (step S45), and the processing is ended (step S46). Notethat, this processing for ending is processing for closing the file inthe mass storage 17 in which the data is recorded or opening the regionon the RAM 13.

By writing the data by performing such processing, the data can berecorded in the mass storage 17 in the form as shown in FIG. 6. Further,the data recording table as shown in FIG. 7 can be obtained.

Next, an explanation will be made of the method of reading the programdata recorded in the mass storage 17 with the format as shown in FIG. 6and transmitting the same.

FIG. 11 is a flow chart showing the processing of the CPU 12 at the timeof transmission of the data.

First, when receiving an instruction for starting the transmission ofthe data from the transmission controller 50 via the external controlinterface 14 (step SI), the CPU 12 reads the data recording table fromthe mass storage 17 and stores the same in the RAM 12 (step S2). Next, 0is set as the initial value of the block identification number i (stepS3) and the code amounts of the programs of the block 0 are read fromthe data recording table and output to the output interfaces 35₋₁ to35_(-n) (step S4).

Next, based on the total number of sectors of the data recording table,the data of the block 0 is read from the mass storage 17 (step S5).Then, the number of sectors of each program is read from the datarecording table and set in the mass storage interface unit 31 and thebuffer memory controllers 32₋₁ to 32_(-n). The data of the programs arestored separated in the buffer memories 33₋₁ to 33_(-n) based on thenumber of sectors for each program (step S6). By this processing, theprogram data is appropriately transmitted for every output channel.

After this, the block identification number is increased by one (stepS7). The processings from step S4 to step S8 are repeated until theblock identification number reaches 1200 (step S8). When the data up tothe block 1200 is transmitted, it is judged whether or not thetransmission should be repeatedly carried out (step S9). Where it shouldbe repeated, the processings from step S3 are repeated again. Where itis allowed to end the transmission of the data, the processing forending the routine carried out (step S10) and the processing is ended(step S11).

By performing the above processing, the data coded with the variabledata rate as shown in FIG. 12 are output from the output channels of thetransmitter 10_(-i).

Note that, in the example shown in the first embodiment, sincetransmission data of a maximum 5 Mbps!×12 channels will be requested,the mass storage 17 should be a data recording apparatus with areproduction capability of at least 60 Mbps!.

The state of the program transmitted by such processing is shown in FIG.13. FIG. 13A shows the state where 12 programs of 10 minutes length arerepeatedly transmitted. Further, FIG. 13B shows a state where oneprogram of 120 minutes is transmitted in 12 states deviated by 10minutes each. By controlling the correspondence between the read dataand output channels at the stage of repeating the transmission of dataof 10 minutes length corresponding to the transmission of 1200 programblocks, both of the transmission methods shown in FIG. 13A and 13B canbe realized.

In this way, according to the data transmission apparatus of the presentinvention, even if the data is video data coded with a variable lengthrate, a desired data can be adequately output to the desired outputchannel. Accordingly, the video data can be recorded at coding ratesadapted to individual video data. Thus the deterioration of the qualityof the picture can be prevented and, at the same time, efficientrecording of video data becomes possible.

Second embodiment

The data transmission apparatus of the first embodiment can handle datacoded with a variable length rate, but of course the present inventioncan also be applied even in a case where transmission of a predeterminedfixed length is constantly requested due to conditions of thetransmission system etc. A data transmission apparatus in the case ofusing the present invention for transfer at a fixed data length will beexplained as a second embodiment.

The configuration of the second embodiment of the data transmissionapparatus, the recording format of the data, the method of preparationof the data recording table, the format of the data recording table,etc. are all the same as those of the first embodiment of the datatransmission apparatus.

In the second embodiment of the data transmission apparatus, the methodOf reading the program data recorded in the mass storage 17 andtransmitting the same is different from the first embodiment of the datatransmission apparatus. This method of transmission of the data will beexplained referring to FIG. 14 and FIG. 15.

FIG. 14 is a flow chart showing the processing of the CPU of thetransmission unit at the time of transmission of data in the secondembodiment of the data transmission apparatus; and FIG. 15 is a view ofthe data output from the second embodiment of the data transmissionapparatus.

As shown in FIG. 14, in the second embodiment of the data transmissionapparatus as well, first, similar to the first embodiment of the datatransmission apparatus, when the processing for transmission of data isinstructed (step SI), the data recording table is read from the massstorage 17 (step S2) and the block identification number i is reset(step S3). Then, the code amounts of the programs of that block 0 areread from the data recording table and output to the output interfaces35₋₁ to 35_(-n) (step S4) and the data of the block 0 is read from themass storage 17 based on the total number of sectors of the datarecording table (step S5).

After reading this data, in the second embodiment of the datatransmission apparatus, it is decided whether or not the transmission isby a variable data rate or the transmission is by a fixed data rate(step S12) . Where it is transmission by a fixed data rate, dummy datais added so that the data of each program has a predetermined dataamount (step S13). Where it is transmission by a variable data rate atstep S12, the addition of the dummy data is not carried out. Then, theprogram data are separated and stored in the buffer memories 33₋₁ to33_(-n) (step S6), and the program data are appropriately transmitted tothe output channels by this.

Thereafter, the processings from step S7 to step S11 are carried out ina similar fashion as the first embodiment.

By performing the above processings, dummy data is added to the outputof an amount of data smaller than the output of the maximum amount ofdata so that data adjusted to the fixed data rate is output from theoutput channels of the transmitters 10_(-i) as shown in FIG. 15.

The present invention can in this way be applied also to a datatransmission apparatus for transmitting data to a transmission lineperforming transmission with a fixed data rate.

Note that the present invention is not restricted to the firstembodiment and second embodiment. A variety of modifications arepossible.

For example, the configuration of the data recording table is notrestricted to the form shown in FIG. 7.

Further, in the above embodiments, the explanation was made of a methodof preparing the data recording table in the data transmission apparatusat the time of inputting the program data. However, it is also possibleto input a prepared data recording table from the outside as this datarecording table at the time of input of the program data.

Further, it is also possible to record the code amount of each programblock recorded in the data recording table at the head of the actualvariable length data and to have the output interfaces 35₋₁ to 35_(-n)determine the code amount by reading the head data.

As explained above in the first embodiment and the second embodiment,according to the data transmission apparatus of the present invention,it becomes possible to read data at a high speed from a recordingapparatus in which are recorded video data and audio data which havebeen coded with a variable data rate. As a result, it becomes possibleto record data in the recording apparatus with a high efficiency andprovide a data transmission apparatus which does not cause deteriorationof the quality of the video data etc.

INDUSTRIAL APPLICABILITY

The data transmission apparatus of the present invention can be appliedto a data transmission apparatus used in a video-on-demand (VOD) -systemand a near video-on-demand (NVOD) system.

I claim:
 1. A data transmission apparatus, comprising:a data recordingmeans for recording on a recording medium a plurality of divided timeseries data, formed by dividing the time series data for everypredetermined time zone and applying variable length coding, insequential order in accordance with the time zones; a table storingmeans for storing at least a table including data length informationindicating the data length of each of the divided time series data andrecording address information indicating a first recording address ofthe divided time series data in the data recording means; and an outputmeans for sequentially outputting the divided time series data in apredetermined fixed time unit based on the data length information andthe recording address information stored in the table storing means andwherein the data recording means and the table storing means store thedata and the table in different recording regions of the same recordingmedium.
 2. A data transmission apparatus comprising:a data recordingmeans for recording on a recording medium a plurality of divided timeseries data, formed by dividing a plurality of time series data forevery predetermined time zone and applying variable length coding, insequential order in accordance with the time zones of the plurality ofdivided time series data of each time series data, respectively; a tablestoring means for storing at least a table including data lengthinformation indicating the data length of each of the divided timeseries data and recording address information indicating the firstrecording address of at least one divided time series data in the datarecording means; a plurality of output channels; and an output means forsequentially outputting the divided time series data from one of theplurality of output channels in a predetermined fixed time unit based onthe data length information and the recording address information storedin the table storing means.
 3. A data transmission apparatus as setforth in claim 2, wherein the plurality of time series data have amutual relationship in time series, the output means sequentiallyoutputs the plurality of time series data from each of the outputchannels in a predetermined order by sequentially outputting a pluralityof divided time series data constituting the plurality of time seriesdata from each of the output channels in the predetermined order.
 4. Adata transmission apparatus as set forth in claim 2, whereintheplurality of time series data have a mutual relationship in time seriesand, each time series data corresponds to one of the output channels,and the output means sequentially outputs a plurality of divided timeseries data constituting each time series data from each correspondingoutput channel in a predetermined order.
 5. A data transmissionapparatus as set forth in claim 2, wherein the data recording meansrecords each divided time series data of the same time zone among theplurality of time series data in the recording medium so that they arephysically continuous.
 6. A data transmission apparatus as set forth inclaim 2, wherein the data recording means continuously records the eachof the divided time series data of the same time zone among theplurality of time series data in recording regions from which the datacan be read in a lump on a randomly accessible recording medium.
 7. Adata transmission apparatus as set forth in claim 2, wherein the timeseries data is video data.
 8. A data transmission apparatus as set forthin claim 2, wherein the output means has a data reading means forreading from the data recording means each of the divided time seriesdata by identifying the same for every time zone based on the datalength information and the recording address information stored in thetable storing means;a plurality of buffer memories which are providedcorresponding to the time series data for storing each of the dividedtime series data read by the data reading means, respectively; and acontrol means for controlling the output of the data from the pluralityof buffer memories to the plurality of output channels.
 9. A datatransmission apparatus as set forth in claim 2, wherein the datarecording means and the table storing means store the data and the tablein different recording regions of the same recording medium.